#ifndef __ABCYP_H__
#define __ABCYP_H__
#include "AB.h"
#define IZQ 1
#define DER 2
#define PAD 3
#define RAIZ 4

/*PRE: Recibe 2 punteros a arboles y un tipo de movimiento.
       origen: es el puntero al arbol del cual se va a copiar los datos. Debe estar creado.
       destino: es el puntero al arbol en el cual se van a copiar los datos. no debe estar creado.
       movin: es el tipo de movimiento. Puede ser: RAIZ, DER o IZQ;
  POS: Copias las subrramas del origen desde el movimiento pedido en el arbol de salida*/
void AB_CopiarSubarbol( const TAB* origen, TAB* destino, int movim);

/*PRE: Recibe 2 punteros a arboles y un tipo de movimiento.
       origen: es el puntero al arbol del cual se va a copiar los datos. Debe estar creado.
       destino: es el puntero al arbol en el cual se van a copiar los datos. Debe de estar creado.
       movin: es el tipo de movimiento. Puede ser: DER o IZQ;
  POS: Copias el arbol origen como una sub rama del destino en la pocicion declarada en movim respecto de su Corriente*/
void AB_PegarSubarbol( const TAB* origen, TAB* destino, int movim);

/*PRE: Recibe un puntero a a un arbol.
  POS: Borra las subrramas desde la pocicion del corriente*/
void borrar_subarbol(TAB* arbol);
#endif //__ABCYP_H__
